package com.getan.boot.module.system.constant;

import com.getan.boot.common.ResponseCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
 * 错误码
 *
 * @author Bruce.Gong
 * @since 1.0.0-SNAPSHOT
 */
@RequiredArgsConstructor
@Getter
public enum ErrorCode implements ResponseCode {

    // 配置管理
    CONFIG_NOT_EXISTS     ("1001001", "配置不存在或者已删除!"),
    CONFIG_CODE_EXISTS    ("1001002", "该配置编码已存在!"),
    CONFIG_IS_SYS         ("1001003", "配置%s是系统配置，不能删除!"),

    // 字典管理
    DICT_TYPE_NOT_EXISTS  ("1002001", "字典类型不存在或者已删除!"),
    DICT_TYPE_DISABLED    ("1002002", "字典类型已停用!"),
    DICT_TYPE_EXISTS      ("1002003", "该字典类型已存在!"),
    DICT_TYPE_IS_SYS      ("1002004", "字典类型%s是系统字典，不能%s!"),
    DICT_TYPE_IS_DISABLED ("1002005", "字典类型%s已停用，请不要重复操作!"),
    DICT_TYPE_IS_ENABLE   ("1002006", "字典类型%s状态正常，请不要重复操作!"),

    DICT_NOT_EXISTS       ("1002007", "字典项不存在或者已删除!"),
    DICT_DISABLED         ("1002008", "该字典项已停用"),
    DICT_CODE_EXISTS      ("1002009", "该字典项编码已存在!"),
    DICT_IS_DISABLED      ("1002010", "字典项%s已停用，请不要重复操作"),
    DICT_IS_ENABLE        ("1002011", "字典项%s状态正常，请不要重复操作!"),

    // 部门管理
    DEPT_NOT_EXISTS       ("1003001", "部门不存在或者已删除!"),
    DEPT_DISABLED         ("1003002", "部门已停用!"),
    DEPT_ENABLED          ("1003003", "部门已启用!"),
    DEPT_HAS_CHILDREN     ("1003004", "该部门包含子部门!"),
    DEPT_NAME_EXISTS      ("1003005", "该部门名称已存在!"),
    DEPT_PARENT_NOT_EXISTS("1003006", "父部门不存在或者已删除!"),
    DEPT_PARENT_DISABLED  ("1003007", "父部门已停用!"),
    DEPT_PARENT_PERSONAL  ("1003008", "父部门不能为个人类型!"),
    DEPT_HAS_MEMBER       ("1003009", "该部门包含成员!"),


    // 用户管理
    USER_NAME_EXISTS      ("1004001", "该用户名已注册!"),
    USER_MOBILE_EXISTS    ("1004002", "该手机号已注册!"),
    USER_NOT_EXISTS       ("1004003", "帐号不存在或者已删除!"),
    USER_DISABLED         ("1004004", "该帐号已冻结!"),
    USER_IS_DISABLED      ("1004005", "帐号%s已停用，请不要重复操作"),
    USER_IS_ENABLE        ("1004006", "帐号%s状态正常，请不要重复操作!"),

    // 角色管理
    ROLE_NOT_EXISTS       ("1005001", "角色不存在或者已删除!"),
    ROLE_DISABLED         ("1005002", "角色已停用!"),
    ROLE_IS_DISABLED      ("1005003", "角色%s已停用，请不要重复操作"),
    ROLE_IS_ENABLE        ("1005004", "角色%s状态正常，请不要重复操作!"),
    ROLE_CODE_EXISTS      ("1005005", "该角色编码已注册!"),
    ROLE_IS_SYS           ("1005006", "角色%s是系统角色，不能%s"),
    ROLE_HAS_USER         ("1005007", "角色%s存在用户，不能%s"),

    // 部门管理
    PERM_NOT_EXISTS       ("1006001", "菜单不存在或者已删除!"),
    PERM_DISABLED         ("1006002", "该菜单已停用!"),
    PERM_ENABLED          ("1006003", "该菜单已启用!"),
    PERM_HAS_CHILDREN     ("1006004", "该菜单包含子菜单!"),
    PERM_PARENT_NOT_EXISTS("1006005", "上级菜单不存在或者已删除!"),
    PERM_PARENT_DISABLED  ("1006006", "上级菜单已停用!"),
    PERM_PARENT_BUTTON    ("1006007", "上级菜单不能为按钮类型!"),

    // 个人中心
    PROFILE_PWD_NEQ       ("1007001", "两次输入的密码不一致!"),
    PROFILE_OLD_PWD_FAIL  ("1007002", "原密码不正确!"),

    LOGIN_FAIL            ("1000001", "用户名密码不正确"),

    ;


    private final String code;
    private final String message;

}
